widget: Insist on proper vfunc calling
authorBenjamin Otte <otte@redhat.com>
Wed, 29 May 2019 13:01:18 +0000 (15:01 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 29 May 2019 14:34:56 +0000 (16:34 +0200)
Insist that ->show() is only called for invisible and ->hide only for
visible widgets.

gtk/gtkwidget.c

index 26dbae11970469141c26c9dbe8e0e3128965ed6e..498c49b73fd0215f756db43f8c3343f93b16423d 100644 (file)
@@ -3137,16 +3137,15 @@ gtk_widget_real_show (GtkWidget *widget)
 {
   GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
 
-  if (!_gtk_widget_get_visible (widget))
-    {
-      priv->visible = TRUE;
+  g_return_if_fail (!_gtk_widget_get_visible (widget));
 
-      if (priv->parent &&
-         _gtk_widget_get_mapped (priv->parent) &&
-          _gtk_widget_get_child_visible (widget) &&
-         !_gtk_widget_get_mapped (widget))
-       gtk_widget_map (widget);
-    }
+  priv->visible = TRUE;
+
+  if (priv->parent &&
+      _gtk_widget_get_mapped (priv->parent) &&
+      _gtk_widget_get_child_visible (widget) &&
+      !_gtk_widget_get_mapped (widget))
+    gtk_widget_map (widget);
 }
 
 /**
@@ -3204,13 +3203,12 @@ gtk_widget_real_hide (GtkWidget *widget)
 {
   GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
 
-  if (_gtk_widget_get_visible (widget))
-    {
-      priv->visible = FALSE;
+  g_return_if_fail (_gtk_widget_get_visible (widget));
 
-      if (_gtk_widget_get_mapped (widget))
-       gtk_widget_unmap (widget);
-    }
+  priv->visible = FALSE;
+
+  if (_gtk_widget_get_mapped (widget))
+    gtk_widget_unmap (widget);
 }
 
 static void